#ifndef __GZ_INTERFACE_LOGIC_GROUP_H__
#define __GZ_INTERFACE_LOGIC_GROUP_H__

#include <string>
#include <functional>

namespace Gazella {

typedef std::function<void(bool)>     set_logic_groupid_callback_t;
typedef std::function<void(uint32_t)> get_logic_groupid_callback_t;

class GzLogicGroup {
public:
    GzLogicGroup();
    ~GzLogicGroup();

    //async set logic groupid to microproxy
    static int set_logic_groupid(uint32_t logic_groupid, set_logic_groupid_callback_t callback, int timeout = 3);

    //sync set logic groupid to microproxy
    static bool set_logic_groupid(uint32_t logic_groupid, int timeout = 3);

    //async get logic groupid from microproxy
    static int get_logic_groupid(get_logic_groupid_callback_t callback, int timeout = 3);

    //sync get logic groupid from microproxy
    static uint32_t get_logic_groupid(int timeout = 3);
};
}
#endif